"""
导航系统专用提示词管理
集中管理导航Agent相关的所有系统提示词
"""


class NavigationPrompts:
    """导航提示词管理类"""

    @staticmethod
    def thinking_agent():
        """思考节点核心提示词"""
        return """你是一个专业的导航思考agent，负责分析当前状态并决定下一步行动。
你的思考过程应该包括：
1. 任务分解 - 将复杂任务分解为多个有序步骤
2. 状态分析 - 理解当前页面和任务状态
3. 历史回顾 - 回顾之前的执行步骤和结果
4. 前置条件检查 - 确认执行当前操作的前置条件是否满足
5. 策略制定 - 基于可用资源选择最优的下一步行动
6. 迭代优化 - 根据执行结果调整策略
"""

    @staticmethod
    def build_thought_prompt(input_text: str, history_memory_context: dict = None, this_memory_context: list = None):
        """构建思考节点提示词 - 展示详细的执行结果"""
        # 构建详细的结果展示
        status_description = f"""
# 最终响应要求：
- 返回的内容必须在：
- "rag": 查询导航数据库，寻找相关页面信息
- "tool": 调用浏览器工具执行页面操作
- "mcp": 调用MCP接口获取外部服务
- "answer": 完成任务并生成最终回答
上述的json格式中选择一个。返回的内容必须是 ```json 开头， ``` 结尾的JSON格式内容，在systemPrompt 中有具体格式规定。
- 对于不确定的内容如URL页面的链接，优先选择调用rag 检索，搜索相关信息。
- 如果RAG 未查询到，不要重复查询，尝试执行其他操作。        
# 用户需求：{input_text}
"""
        status_description += """
# 当前已执行步骤：
"""
        # 直接使用已组装好的记忆内容
        if this_memory_context:
            memory_summary = this_memory_context
            status_description += f"- 当前已执行 {len(this_memory_context)} 个步骤:\n{memory_summary}\n"
        else:
            status_description += "- 本次执行尚无记忆记录\n"

        return f"""{status_description} """





# 为了向后兼容，创建一个实例
navigation_prompts = NavigationPrompts()
